home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
util1
/
exc23.zip
/
EXC.V11
< prev
next >
Wrap
Text File
|
1993-02-07
|
4KB
|
75 lines
REVISIONS FOR VERSION 1.1 OF EXC.EXE
Many thanks to the few users who have reported problems and/or suggested
enhancements. If you don't report them and I don't find them, they don't
get fixed.
1. I apologize for the EXC.DOC file. In my rush to get it documented and
uploaded, I neglected to spell check or proofread it. It was terrible.
I hope it is much more readable now.
2. Leading and trailing TAB characters (hex 09) were not being removed from
script lines, causing invalid command messages.
3. There appears to be a need in the user community to repeat commands,
groups of commands and keys a known number of times to allow them to
write smaller scripts.
Added "ON n label". This is a powerfull loop control command similar
to the logic used in FOR statements common in many programming languages.
Added a repeat number that can be added to the end of a KEY command. The
key that is specified will be repeated as many times as specified. For
instance, "KEY <TAB> 5" stuffs five tabs into the keyboard buffer.
4. Fixed a problem where certain invalid key mnemonics were not generating
error messages.
5. If you loop through SEARCH commands looking for multiple possible messages
that could occur, each time the timer interrupt is invoked (18.2/sec) the
entire screen is read, reformatted to remove attributes and searched for
each SEARCH in the loop. WAITFOR and WAITSCR have built-in one second
delays between screen reads to minimize this overhead.
One solution is to stick a DELAY in the loop, but if you do this between
each SEARCH, execution of the script will slow down dramatically.
I added a READ command that will read the screen and do nothing else.
I then added a LOOK command that searches the screen buffer that was last
read by a READ, SEARCH, WAITFOR or WAITSCR command. It's just like the
SEARCH command without reading the screen prior to the search.
EXAMPLE 1: EXAMPLE 2: EXAMPLE 3:
:Loop :Loop :Loop
SEARCH "Continue?" READ SEARCH "Continue?"
IFY Continue LOOK "Continue?" IFY Continue
LOOK "ERROR:" IFY Continue LOOK "ERROR:"
IFY Error LOOK "ERROR:" IFY Error
GOTO Loop IFY Error DELAY 1
:Continue DELAY 1 GOTO Loop
. GOTO Loop :Continue
. :Continue .
:Error . .
. . :Error
. :Error .
. .
.
In the above examples, Example 1 shows how you would have intuitavely
coded the script in version 1.0. Adding a DELAY 1 at the end of the
loop would have helped performance, but two screen reads would be per-
formed each second. Example two demonstrates how READ and LOOK could
be used to make a very efficient loop. Example 3 shows that, since
a READ followed by a LOOK is equal to a SEARCH, so the third example
is the best because it takes two iterations of the interrupt to process
each command in the script. The first iteration reads and formats the
command and the second executes it.
6. Installed COMMAND.COM as the default program name on the command line.
7. Modified QUIT and end0of-script logic to issue EXIT if COMMAND.COM was
invoked.